from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

# 生成示例数据，模拟未标注的数据
X, _ = make_blobs(n_samples=300, centers=4, cluster_std=0.6, random_state=42)

# 初始化KMeans聚类器，设定聚类中心数量为4
kmeans = KMeans(n_clusters=4, random_state=42, n_init=10) # n_init to suppress warning
# 使用数据进行聚类，并得到每个数据点的聚类标签
y_kmeans = kmeans.fit_predict(X)

# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, cmap='viridis', label='Data Points') # 绘制数据点，颜色表示不同的簇
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=300, c='red', label='Centroids') # 绘制聚类中心
plt.title('K-Means Clustering')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.legend()
plt.show()